package com.modifiertech.lineage.api;

import com.modifiertech.lineage.event.SkillAnimateCallEvent;
import com.modifiertech.lineage.event.SkillLevelUpEvent;
import com.modifiertech.lineage.event.SkillShortCutBindEvent;

import net.minecraft.entity.player.EntityPlayer;
import net.minecraftforge.event.entity.EntityJoinWorldEvent;
import net.minecraftforge.event.entity.living.*;
import net.minecraftforge.event.entity.player.PlayerEvent;
import net.minecraftforge.event.entity.player.PlayerInteractEvent;
import net.minecraftforge.event.world.BlockEvent;
import net.minecraftforge.fml.common.gameevent.TickEvent;

public interface IAbilityEventHandler {
    default void onPlayerTick(TickEvent.PlayerTickEvent event) {
    }

    default void onBlockDrops(BlockEvent.HarvestDropsEvent event) {
    }

    default void getBreakSpeed(PlayerEvent.BreakSpeed event) {
    }

    default void onMobDrops(LivingDropsEvent event) {
    }

    default void onAttackMob(LivingHurtEvent event) {
    }

    default void onHurt(LivingHurtEvent event) {
    }

    default void onRightClickBlock(PlayerInteractEvent.RightClickBlock event) {
    }

    default void onRightClickItem(PlayerInteractEvent.RightClickItem event) {
    }

    default void onRightClickItem(PlayerInteractEvent.EntityInteract event) {
    }

    default void onItemUseFinish(LivingEntityUseItemEvent.Finish event) {
    }

    default void onEnderTeleport(EnderTeleportEvent event) {
    }

    default void onKillMob(LivingDeathEvent event) {
    }
    default void onPlayerDead(LivingDeathEvent event) {
    }
    default void onPlayerRespawn(net.minecraftforge.fml.common.gameevent.PlayerEvent.PlayerRespawnEvent event){
    }
    default void onPlayerLogin(net.minecraftforge.fml.common.gameevent.PlayerEvent.PlayerLoggedInEvent event){
    }
    default void  onPlayerClone(net.minecraftforge.event.entity.player.PlayerEvent.Clone event){
    }
    default void onPlayerChangeDimension(net.minecraftforge.fml.common.gameevent.PlayerEvent.PlayerChangedDimensionEvent event){
    }
    default void onArrowLoose(EntityJoinWorldEvent event){}
    default void onBowUse(LivingEntityUseItemEvent event){}
    default void onHeal(LivingHealEvent event){}
    default void onSkillLevelUp(SkillLevelUpEvent.Post even){}
    default void onSkillShortCutBind(SkillShortCutBindEvent.Post even){}
    default void onSkillAnimateCall(SkillAnimateCallEvent.Post event){}
    default void onPlayerSkillHandingOff(EntityPlayer entityPlayerMP){}
    default void onSkillRangeSelectedRender(float partialTicks){}
    default void onLivingFallEvent(LivingFallEvent event){}

}
